/*
** Copyright (c) 2008 Mobile GCalendarManager
**
** Permission is hereby granted, free of charge, to any person
** obtaining a copy of this software and associated documentation
** files (the "Software"), to deal in the Software without
** restriction, including without limitation the rights to use,
** copy, modify, merge, publish, distribute, sublicense, and/or sell
** copies of the Software, and to permit persons to whom the
** Software is furnished to do so, subject to the following
** conditions:
**
** The above copyright notice and this permission notice shall be
** included in all copies or substantial portions of the Software.
**
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
** HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
** WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
** FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
** OTHER DEALINGS IN THE SOFTWARE.
*/

/**
 *
 */
package au.edu.mq.comp.itec800.mgc.util;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collection;

import org.apache.log4j.Logger;


/**
 * Convenience class containing miscellaneous utility methods.
 *
 * @author Laurent Malvert [laurent.malvert@students.mq.edu.au]
 */
public class Utils
{
  private static final Logger logger  = Logger.getLogger(Utils.class);

  public static final String  succeeded = "succeeded".intern();
  public static final String  failed    = "failed".intern();
  public static final String  ok        = "OK".intern();
  public static final String  ko        = "KO".intern();

  /**
   * Retrieves a URL object from a stringified URL definition.
   *
   * @param url
   *            the URL has a RFC-compliant String object.
   * @return
   *            the corresponding URL object.
   */
  public static URL           toUrl(final String url)
  {
    URL                       feedUrl = null;

    try
    {
      feedUrl = new URL(url);
    }
    catch (final MalformedURLException e)
    {
      /*
       * this should not happen anyway, feed URLs are hard-coded
       * and should always be safe.
       */
      logger.warn(e.getMessage(), e);
    }
    return (feedUrl);
  }

  public static boolean       isInBound(final Collection<?> c, final int idx)
  {
    return ((c != null) && (idx >= 0) && (idx < c.size()));
  }

  public static String        state(final boolean b)
  {
    return (b ? succeeded : failed);
  }
}
